﻿/*using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using Ant.Interface.PlugIn;

namespace Ant.Interface.Data
{
    public interface IRepositoryControllerBasic
    {
    }

    /// <summary>
    /// 储藏室控制器。
    /// </summary>
    public interface IRepositoryController : IPlugIn
    {
        /// <summary>
        /// 创建。
        /// </summary>
        /// <param name="entity">实体。</param>
        /// <param name="isLazy">是否延迟（是：需执行Flush方法向数据库进行提交，否：立即向数据库进行提交）。</param>
        /// <returns>新实体。</returns>
        object Create(object entity, bool isLazy = false);

        /// <summary>
        /// 创建或更新。
        /// </summary>
        /// <param name="entity">实体。</param>
        /// <param name="isLazy">是否延迟（是：需执行Flush方法向数据库进行提交，否：立即向数据库进行提交）。</param>
        void CreateOrUpdate(object entity, bool isLazy = false);

        /// <summary>
        /// 更新。
        /// </summary>
        /// <param name="entity">实体。</param>
        /// <param name="isLazy">是否延迟（是：需执行Flush方法向数据库进行提交，否：立即向数据库进行提交）。</param>
        void Update(object entity, bool isLazy = false);

        /// <summary>
        /// 删除。
        /// </summary>
        /// <param name="entity">实体。</param>
        /// <param name="isLazy">是否延迟（是：需执行Flush方法向数据库进行提交，否：立即向数据库进行提交）。</param>
        void Delete(object entity, bool isLazy = false);

        /// <summary>
        /// 获取一个实体。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <param name="id">标识。</param>
        /// <returns>实体。</returns>
        T Get<T>(object id);

        /// <summary>
        /// 获取一个实体。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <param name="predicate">表达式。</param>
        /// <returns>实体。</returns>
        T Get<T>(Expression<Func<T, bool>> predicate);

        /// <summary>
        /// 冲刷缓冲区。
        /// </summary>
        void Flush();

        /// <summary>
        /// 查询。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <returns>延迟查询的集合。</returns>
        IQueryable<T> Query<T>();

        /// <summary>
        /// 计算大小。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <param name="predicate">表达式。</param>
        /// <returns>大小。</returns>
        long Count<T>(Expression<Func<T, bool>> predicate);

        /// <summary>
        /// 抓取集合。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <param name="predicate">表达式。</param>
        /// <returns>集合。</returns>
        IEnumerable<T> Fetch<T>(Expression<Func<T, bool>> predicate);

        /// <summary>
        /// 抓取集合。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <param name="predicate">表达式。</param>
        /// <param name="order">排序。</param>
        /// <returns>集合。</returns>
        IEnumerable<T> Fetch<T>(Expression<Func<T, bool>> predicate, Action<Orderable<T>> order);

        /// <summary>
        /// 抓取集合。
        /// </summary>
        /// <typeparam name="T">实体类型。</typeparam>
        /// <param name="predicate">表达式。</param>
        /// <param name="order">排序。</param>
        /// <param name="skip">跳过记录数（null则不跳过记录数）。</param>
        /// <param name="count">抓取的记录数（null则抓取无限大）。</param>
        /// <returns>集合。</returns>
        IEnumerable<T> Fetch<T>(Expression<Func<T, bool>> predicate, Action<Orderable<T>> order, int? skip, int? count);
    }
}*/